﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using FONCREAGROINTEGRAL.Models;

namespace FONCREAGROINTEGRAL.Controllers
{
    public class epsmescostoController : Controller
    {
        SistIntFoncreagroEntities entidades = new SistIntFoncreagroEntities(); 


        //
        // GET: /epsmescosto/

//        SELECT epsm.IdEpsMesCosto,
//             e.Anio,
//             CASE WHEN em.mes = 1 THEN 'ENERO'
//                    WHEN em.mes = 2 THEN 'FEBRERO'
//                    WHEN em.mes = 3 THEN 'MARZO'
//                    WHEN em.mes = 4 THEN 'ABRILO'
//                    WHEN em.mes = 5 THEN 'MAYO'
//                    WHEN em.mes = 6 THEN 'JUNIO'
//                    WHEN em.mes = 7 THEN 'JULIO'
//                    WHEN em.mes = 8 THEN 'AGOSTO'
//                    WHEN em.mes = 9 THEN 'SETIEMBRE'
//                    WHEN em.mes = 10 THEN 'OCTUBRE'
//                    WHEN em.mes = 11 THEN 'NOVIEMBRE'
//                    WHEN em.mes = 12 THEN 'DICIEMBRE'  END As Mes,
//             epsm.Monto,
//             epsm.Pagado,
//             epsm.verificadoRRHH
//FROM EJERCICIOMES em INNER JOIN EPSMESCOSTO epsm ON em.IdEjercicioMes = epsm.IdEjercicioMes
//                                  INNER JOIN EJERCICIO e ON em.IdEjercicio = e.IdEjercicio
//WHERE IdAfiliacionepsserviciospropio = 6
//ORDER BY e.Anio Desc,  em.mes Desc

        public ActionResult Index(int id)
        {
            int start = Convert.ToInt32(Request.QueryString["start"]);
            int limit = Convert.ToInt32(Request.QueryString["limit"]);


            var query = entidades.EPSMESCOSTOes.Where(epmc => epmc.IdAfiliacionepsserviciospropio == id);

            var result = (from epmc in query.OrderByDescending(epmc=>epmc.IdEpsMesCosto).Skip(start).Take(limit).ToList()
                          join em in entidades.EJERCICIOMES on epmc.idejerciciomes equals em.idejerciciomes
                          join ej in entidades.EJERCICIOs on em.IdEjercicio equals ej.IdEjercicio
                          select new
                          {
                              IdEpsMesCosto= epmc.IdEpsMesCosto,
                              Anio=ej.Anio,
                              Mes=em.mes, 
                              Monto=epmc.Monto, 
                              Pagado=epmc.Pagado, 
                              VerificadoRRHH=epmc.verificadoRRHH
                              
                          }).ToList();

            return Json(new { grid = result, total = query.Count() }, JsonRequestBehavior.AllowGet);
            
        }

        //Ingreso Manual de Monto
        [HttpPost]
        public ActionResult Manual(int id, FormCollection collection)
        {
            var mrentaquinta = entidades.EPSMESCOSTOes.Single(rq => rq.IdEpsMesCosto == id);
            try
            {
                // TODO: Add update logic here
                
                TryUpdateModel(mrentaquinta);
                entidades.SaveChanges();
                
                return Content("OK");
            }
            catch
            {
                return Content("ERROR");
            }
        }

    }
}
